﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Strongshell.Recoil.Core.Composition
{
    public class DefaultObjectNameFactory : IObjectNameFactory
    {
        public string CreateName<TTarget>()
        {
            return typeof (TTarget).FullName;
        }

        public string CreateName(Type target)
        {
            return target.FullName;
        }

        public string CreateUniqueName<TTarget>()
        {
            return CreateUniqueName(typeof (TTarget));
        }

        public string CreateUniqueName(Type target)
        {
            return target.FullName + "!" + Guid.NewGuid();
        }
    }
}